jquery教程

推荐列表 站点导航

当前位置:首页 > jquery > jquery教程 >

关于php中对象传值方式的详解

来源:网络整理  作者:  发布时间:2020-12-22 01:44
jquery中文网为您提供关于php中对象传值方式的详解等资源,欢迎您收藏本站,我们将为您提供最新的关于php中对象传...

对象-4.jpg

<?php class Person { public $name; public $age; } // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 将对象赋予另一变量 $m = &$p; // 另一变量修改属性值 $m->name = 'Marry'; // 输出源变量 赋值变量访问内部属性的结果 echo $p->name, $m->name; ?>

对象-5.jpg

在这里通过变量的赋值方式 与 对象的赋值方式方式相对比,代码第5行中的赋值方式为“拷贝赋值”,故在修改其源值($a的值)的情况下,$b的值不受影响。$a与$b的内存关系图如下:

关于php中对象传值方式的详解

而代码20行将数据类型赋值给$p变量,通过$p修改对象内部的值成功,对比变量的传值方式,证明这是引用传值,内存关系图如下:

<?php class Person { public $name; public $age; // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 将对象赋予另一变量 $m = $p; // 另一变量修改属性值 $m->name = 'Marry'; // 输出源变量 赋值变量访问内部属性的结果 echo $p->name, $m->name; } ?>

第12行代码为本篇文章的最“点睛”的代码,等号右边为是一个对象,左边是一个变量,那么犀利的问题来了,$m是将对象拷贝一份?还是按引用传递呢?该代码内存关系如下:

<?php // 声明一个变量并赋值 $a = 1; // 将数据类型的值 赋值 给一个变量 $b = $a; // 修改$a的值 $a = 2; // $a和$b是两个独立的内存空间修改其中一个另一个不受影响 echo $b; // 1 class Person { public $name; public $age; } // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 若是成功修改值,则是引用传值 echo $p->name; // jesse ?>

案例解释:

而代码20行将数据类型赋值给$p变量,通过$p修改对象内部的值成功,对比变量的传值方式,证明这是引用传值,内存关系图如下:

对象-3.jpg

所以,最后两个对象的属性值均被修改为Marry!!!

对象-2.jpg

那按引用传值会是怎么个情况?

更多相关内容请访问jquery中文网:PHP视频教程

以上就是关于php中对象传值方式的详解的详细内容,更多请关注jQuery中文网其它相关文章!

变量赋值与对象赋值对比

相关热词: 详解

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jq/jc/6902.shtml

相关文章
最新文章
PHP识别相片是否是颠倒的 PHP识别相片是否是颠倒的

时间:2020-12-28

python编程有哪些ide python编程有哪些ide

时间:2020-12-28

python开发工程师是做什么 python开发工程师是做什么

时间:2020-12-28

php构造函数的作用 php构造函数的作用

时间:2020-12-28

php怎么跟数据库连接 php怎么跟数据库连接

时间:2020-12-28

php实现顺序线性表 php实现顺序线性表

时间:2020-12-28

Python多重继承中的菱形继 Python多重继承中的菱形继

时间:2020-12-28

php中break的作用 php中break的作用

时间:2020-12-28

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

关于php中对象传值方式的详解

2020-12-22 编辑:

对象-4.jpg

<?php class Person { public $name; public $age; } // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 将对象赋予另一变量 $m = &$p; // 另一变量修改属性值 $m->name = 'Marry'; // 输出源变量 赋值变量访问内部属性的结果 echo $p->name, $m->name; ?>

对象-5.jpg

在这里通过变量的赋值方式 与 对象的赋值方式方式相对比,代码第5行中的赋值方式为“拷贝赋值”,故在修改其源值($a的值)的情况下,$b的值不受影响。$a与$b的内存关系图如下:

关于php中对象传值方式的详解

而代码20行将数据类型赋值给$p变量,通过$p修改对象内部的值成功,对比变量的传值方式,证明这是引用传值,内存关系图如下:

<?php class Person { public $name; public $age; // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 将对象赋予另一变量 $m = $p; // 另一变量修改属性值 $m->name = 'Marry'; // 输出源变量 赋值变量访问内部属性的结果 echo $p->name, $m->name; } ?>

第12行代码为本篇文章的最“点睛”的代码,等号右边为是一个对象,左边是一个变量,那么犀利的问题来了,$m是将对象拷贝一份?还是按引用传递呢?该代码内存关系如下:

<?php // 声明一个变量并赋值 $a = 1; // 将数据类型的值 赋值 给一个变量 $b = $a; // 修改$a的值 $a = 2; // $a和$b是两个独立的内存空间修改其中一个另一个不受影响 echo $b; // 1 class Person { public $name; public $age; } // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 若是成功修改值,则是引用传值 echo $p->name; // jesse ?>

案例解释:

而代码20行将数据类型赋值给$p变量,通过$p修改对象内部的值成功,对比变量的传值方式,证明这是引用传值,内存关系图如下:

对象-3.jpg

所以,最后两个对象的属性值均被修改为Marry!!!

对象-2.jpg

那按引用传值会是怎么个情况?

更多相关内容请访问jquery中文网:PHP视频教程

以上就是关于php中对象传值方式的详解的详细内容,更多请关注jQuery中文网其它相关文章!

变量赋值与对象赋值对比

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jq/jc/6902.shtml

相关文章

风云图片

推荐阅读

返回jquery教程频道首页